/**
 * @description axios请求的封装
 */
const BASE_URL = 'http://fitness.h5.itsource.cn:3701';
// 接口请求的 URL      
const axios = require('axios');
const local = require('./local');
/**
 * 请求拦截器
 * 
 * 作用: 在每一次发送讲求的时候进行统一操作  如让后期每一个请求都带上token 令牌
 * 
 * 
*/

//验证Authorization 访问所有api接口 必须有token值 有token值表示通过验证 才可以继续访问接口 
axios.interceptors.request.use(config => {
  let token = local.get('token');
  if (token) {
    config.headers.Authorization = 'Bearer ' + token
  } else {
    console.log('还没有通行token哦');

  }
  // 在最后必须 return config
  return config
})

//上传图像功能
function upLoadPic(url, key, value, callback) {
  /*
     FormData是一个构造函数,主要用于上传文件时进行编码操作,相当于form的formData数据格式,只有被编码的格式的文件才能把源文件上传到服务器
     let 实例对象=new FormData()
     
     方法:
      实例对象.append(key, value);

  */
  let fd = new FormData();
  fd.append(key, value);
  post(url, fd, function (res) {
    callback(res)
  })
}

/* post请求 */
function post(url, data, callback) {
  axios.post(BASE_URL + url, data).then(res => {
    callback(res.data)
  }).catch(err => {
    callback(err)
  })
}

/*get请求*/
function get(url, callback) {
  axios.get(BASE_URL + url).then(res => {
    callback(res.data)
  }).catch(err => {
    callback(err)
  })
}


/* 导出 */
module.exports = {
  get,
  post,
  BASE_URL,
  upLoadPic
}
